const DepartModel = require("../../models/depart/DepartModel.js");

const DepartDB = {
  // 查询部门列表数据
  async getDepartList(params) {
    let { page, pageSize } = params; // 页码,每页条数
    if (!page && !pageSize) {
      return DepartModel.find();
    }
    page = +page;
    pageSize = +pageSize;
    let skip = (page - 1) * pageSize;

    let config = {};
    if (params?.depNo) {
      config.depNo = params.depNo;
    }
    if (params?.name) {
      config.name = { $regex: new RegExp(params.name, "gi") };
    }

    // 区域参数中只有页码和页大小的情况，还有传递了但是为空字符串的情况需要排除，然后只针对数组情况进行处理
    if (params?.createtime && params?.createtime?.length !== 0) {
      // 需要注意查询条件的处理
      // console.log(params); //[ '2023-10-04 00:00:00', '2023-11-24 00:00:00' ]
      // console.log(Date.parse(params.createtime[0]));
      config.createtime = {
        $gte: +Date.parse(params.createtime[0]),
        $lte: +Date.parse(params.createtime[1]),
      };
    }
    return DepartModel.find(config).skip(skip).limit(pageSize);
  },
  async getCount() {
    return DepartModel.find().countDocuments();
  },
  async deleteDepartListItem(id) {
    return DepartModel.deleteOne({ _id: id });
  },
  async addDepartList(params) {
    return DepartModel.create(params);
  },
  async updateDepartItem(id, params) {
    return DepartModel.updateOne({ _id: id }, { ...params });
  },
};

module.exports = DepartDB;
